不知道什麼是短期排班演算法建議可以先看看上一篇2-9 行程
短期排班名詞介紹
針對短期排班從ReadyQueue挑出process獲得CPU服務的演算方法如下
First In First Out
先進先出,過程中不可搶其他process資源,就像你(process)在711排隊一樣先排的先結帳(獲得CPU服務)然後不可以搶其他人手上要結帳的東西(其他process資源)
以下為計算例子,求Average Waiting Time 和 Average Turnaround Time:
Shortest Job First
所需的CPU時間越短,越先獲得CPU服務,不可搶其他process資源
Shortest Remaining Job First
所需的CPU時間越短,越先獲得CPU服務,可搶其他process資源
優先權排班
priority越高者,越先獲得CPU服務,priority相同採FIFO,SJF其實就是優先權排班演算法的特例。一旦採用優先權,就有可能會發生starvation,所以優先權排班有使用Aging Technique老化技術(避免process長期或無限期無法取得CPU服務,等越久Priority會提高)
說明:
Round-Robin (R.R)
指輪流給各process一固定時間,時間到就得將CPU交由下一個process執行(可搶其他process資源)
優缺比較
# | FIFO | SJF | SRJF | 優先權 | RR |
---|---|---|---|---|---|
優 | No starvation,較公平 | 效益最佳,不會有convoy effect | A.W.T & A.T.T 最短 | 可讓緊急事件優先處理 | 適合分時系統,較公平 |
缺 | convoy effect | 可能有starvation | context switch較多,可能有starvation | 可能有starvation(用aging技術解) | context switch較多 |
註:
以下參考連結在學習過程中覺得非常有幫助:
-台大線上課程
-Chapter3-作業系統-行程-part2
-作業系統